<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>OrbbecSDK: ob::Pipeline Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="orbbec_icon.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">OrbbecSDK
   &#160;<span id="projectnumber">1.10.22</span>
   </div>
   <div id="projectbrief">OrbbecSDK: Software-Development-Kit for Orbbec 3D Cameras</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceob.html">ob</a></li><li class="navelem"><a class="el" href="classob_1_1Pipeline.html">Pipeline</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classob_1_1Pipeline-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ob::Pipeline Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="Pipeline_8hpp_source.html">Pipeline.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a7640a92561c0a10f34fcf874f7dbfbad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#a7640a92561c0a10f34fcf874f7dbfbad">Pipeline</a> ()</td></tr>
<tr class="memdesc:a7640a92561c0a10f34fcf874f7dbfbad"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classob_1_1Pipeline.html">Pipeline</a> is a high-level interface for applications, algorithms related RGBD data streams. <a class="el" href="classob_1_1Pipeline.html">Pipeline</a> can provide alignment inside and synchronized <a class="el" href="classob_1_1FrameSet.html" title="Define the FrameSet class, which inherits from the Frame class. ">FrameSet</a>. <a class="el" href="classob_1_1Pipeline.html#a7640a92561c0a10f34fcf874f7dbfbad" title="Pipeline is a high-level interface for applications, algorithms related RGBD data streams...">Pipeline()</a> no parameter version, which opens the first device in the list of devices connected to the OS by default. If the application has obtained the device through the <a class="el" href="classob_1_1DeviceList.html" title="Class representing a list of devices. ">DeviceList</a>, opening the <a class="el" href="classob_1_1Pipeline.html#a7640a92561c0a10f34fcf874f7dbfbad" title="Pipeline is a high-level interface for applications, algorithms related RGBD data streams...">Pipeline()</a> at this time will throw an exception that the device has been created.  <a href="#a7640a92561c0a10f34fcf874f7dbfbad">More...</a><br /></td></tr>
<tr class="separator:a7640a92561c0a10f34fcf874f7dbfbad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab0777ee6f7f5be19871877c7942cac3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#aab0777ee6f7f5be19871877c7942cac3">Pipeline</a> (std::shared_ptr&lt; <a class="el" href="classob_1_1Device.html">Device</a> &gt; device)</td></tr>
<tr class="memdesc:aab0777ee6f7f5be19871877c7942cac3"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classob_1_1Pipeline.html#aab0777ee6f7f5be19871877c7942cac3" title="Pipeline(std::shared_ptr&lt; Device &gt; device ) Function for multi-device operations. Multiple devices ne...">Pipeline(std::shared_ptr&lt; Device &gt; device )</a> Function for multi-device operations. Multiple devices need to be obtained through <a class="el" href="classob_1_1DeviceList.html" title="Class representing a list of devices. ">DeviceList</a>, and the device and pipeline are bound through this interface.  <a href="#aab0777ee6f7f5be19871877c7942cac3">More...</a><br /></td></tr>
<tr class="separator:aab0777ee6f7f5be19871877c7942cac3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c539f66996938d4c35977a124df027e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#a8c539f66996938d4c35977a124df027e">Pipeline</a> (const char *filename)</td></tr>
<tr class="memdesc:a8c539f66996938d4c35977a124df027e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a pipeline for playback of recorded stream files.  <a href="#a8c539f66996938d4c35977a124df027e">More...</a><br /></td></tr>
<tr class="separator:a8c539f66996938d4c35977a124df027e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f91b419f8f1d345cd4400365bc59d91"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#a3f91b419f8f1d345cd4400365bc59d91">~Pipeline</a> () noexcept</td></tr>
<tr class="memdesc:a3f91b419f8f1d345cd4400365bc59d91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the pipeline object.  <a href="#a3f91b419f8f1d345cd4400365bc59d91">More...</a><br /></td></tr>
<tr class="separator:a3f91b419f8f1d345cd4400365bc59d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a9d7d03161138a172aed81b640ea702"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#a0a9d7d03161138a172aed81b640ea702">start</a> (std::shared_ptr&lt; <a class="el" href="classob_1_1Config.html">Config</a> &gt; config)</td></tr>
<tr class="memdesc:a0a9d7d03161138a172aed81b640ea702"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start the pipeline with configuration parameters.  <a href="#a0a9d7d03161138a172aed81b640ea702">More...</a><br /></td></tr>
<tr class="separator:a0a9d7d03161138a172aed81b640ea702"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab646847294229ddd38a28472485c701"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#aab646847294229ddd38a28472485c701">start</a> ()</td></tr>
<tr class="memdesc:aab646847294229ddd38a28472485c701"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start the pipeline with default configuration parameters.  <a href="#aab646847294229ddd38a28472485c701">More...</a><br /></td></tr>
<tr class="separator:aab646847294229ddd38a28472485c701"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7addded117fbb45e5316a58481b6b534"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#a7addded117fbb45e5316a58481b6b534">start</a> (std::shared_ptr&lt; <a class="el" href="classob_1_1Config.html">Config</a> &gt; config, <a class="el" href="namespaceob.html#a079312e9113ca7d35fd7ccb68fb7c7fa">FrameSetCallback</a> callback)</td></tr>
<tr class="memdesc:a7addded117fbb45e5316a58481b6b534"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start the pipeline and set the frameset data callback.  <a href="#a7addded117fbb45e5316a58481b6b534">More...</a><br /></td></tr>
<tr class="separator:a7addded117fbb45e5316a58481b6b534"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6962165254f3a2115ad24f826537c894"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#a6962165254f3a2115ad24f826537c894">stop</a> ()</td></tr>
<tr class="memdesc:a6962165254f3a2115ad24f826537c894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop the pipeline.  <a href="#a6962165254f3a2115ad24f826537c894">More...</a><br /></td></tr>
<tr class="separator:a6962165254f3a2115ad24f826537c894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6b07a063c71ade099d8728d26682461"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classob_1_1StreamProfileList.html">StreamProfileList</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#af6b07a063c71ade099d8728d26682461">getEnabledStreamProfileList</a> ()</td></tr>
<tr class="memdesc:af6b07a063c71ade099d8728d26682461"><td class="mdescLeft">&#160;</td><td class="mdescRight">get Enabled Stream Profile List,It must be called after the pipeline is started, otherwise it will return an empty list  <a href="#af6b07a063c71ade099d8728d26682461">More...</a><br /></td></tr>
<tr class="separator:af6b07a063c71ade099d8728d26682461"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af58c972e61e3f5440b923ff7f37e4561"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classob_1_1Config.html">Config</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#af58c972e61e3f5440b923ff7f37e4561">getConfig</a> ()</td></tr>
<tr class="memdesc:af58c972e61e3f5440b923ff7f37e4561"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the pipeline configuration parameters.  <a href="#af58c972e61e3f5440b923ff7f37e4561">More...</a><br /></td></tr>
<tr class="separator:af58c972e61e3f5440b923ff7f37e4561"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6d6d07d80ba7e6d71672046bf77789b"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classob_1_1FrameSet.html">FrameSet</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#aa6d6d07d80ba7e6d71672046bf77789b">waitForFrames</a> (uint32_t timeout_ms=1000)</td></tr>
<tr class="memdesc:aa6d6d07d80ba7e6d71672046bf77789b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for frameset data.  <a href="#aa6d6d07d80ba7e6d71672046bf77789b">More...</a><br /></td></tr>
<tr class="separator:aa6d6d07d80ba7e6d71672046bf77789b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0e9660e8022b37ca69ec4692405f454"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classob_1_1Device.html">Device</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#ab0e9660e8022b37ca69ec4692405f454">getDevice</a> ()</td></tr>
<tr class="memdesc:ab0e9660e8022b37ca69ec4692405f454"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the device object.  <a href="#ab0e9660e8022b37ca69ec4692405f454">More...</a><br /></td></tr>
<tr class="separator:ab0e9660e8022b37ca69ec4692405f454"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad2d0a8a95b5f505ede3a013139dab24"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classob_1_1Playback.html">Playback</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#aad2d0a8a95b5f505ede3a013139dab24">getPlayback</a> ()</td></tr>
<tr class="memdesc:aad2d0a8a95b5f505ede3a013139dab24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the playback object.  <a href="#aad2d0a8a95b5f505ede3a013139dab24">More...</a><br /></td></tr>
<tr class="separator:aad2d0a8a95b5f505ede3a013139dab24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40d373e8c143599debc633a1da87ecd2"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classob_1_1StreamProfileList.html">StreamProfileList</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#a40d373e8c143599debc633a1da87ecd2">getStreamProfileList</a> (<a class="el" href="ObTypes_8h.html#a0bf6f74f3eaabbf4a71720b9363b2aa8">OBSensorType</a> sensorType)</td></tr>
<tr class="memdesc:a40d373e8c143599debc633a1da87ecd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the stream profile of the specified sensor.  <a href="#a40d373e8c143599debc633a1da87ecd2">More...</a><br /></td></tr>
<tr class="separator:a40d373e8c143599debc633a1da87ecd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f675f5a53924b06869c1b9f892cdeea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#a5f675f5a53924b06869c1b9f892cdeea">enableFrameSync</a> ()</td></tr>
<tr class="memdesc:a5f675f5a53924b06869c1b9f892cdeea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn on frame synchronization.  <a href="#a5f675f5a53924b06869c1b9f892cdeea">More...</a><br /></td></tr>
<tr class="separator:a5f675f5a53924b06869c1b9f892cdeea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad46ea763b174c240b15279208b9e3d4c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#ad46ea763b174c240b15279208b9e3d4c">disableFrameSync</a> ()</td></tr>
<tr class="memdesc:ad46ea763b174c240b15279208b9e3d4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn off frame synchronization.  <a href="#ad46ea763b174c240b15279208b9e3d4c">More...</a><br /></td></tr>
<tr class="separator:ad46ea763b174c240b15279208b9e3d4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4f59acb5ed8ed7db43535513fb9bcf2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structOBCameraParam.html">OBCameraParam</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#ad4f59acb5ed8ed7db43535513fb9bcf2">getCameraParam</a> ()</td></tr>
<tr class="memdesc:ad4f59acb5ed8ed7db43535513fb9bcf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the camera parameters.  <a href="#ad4f59acb5ed8ed7db43535513fb9bcf2">More...</a><br /></td></tr>
<tr class="separator:ad4f59acb5ed8ed7db43535513fb9bcf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8049e3e75826e4873af2010058ad363a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structOBCameraParam.html">OBCameraParam</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#a8049e3e75826e4873af2010058ad363a">getCameraParamWithProfile</a> (uint32_t colorWidth, uint32_t colorHeight, uint32_t depthWidth, uint32_t depthHeight)</td></tr>
<tr class="memdesc:a8049e3e75826e4873af2010058ad363a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get camera parameters by entering color and depth resolution.  <a href="#a8049e3e75826e4873af2010058ad363a">More...</a><br /></td></tr>
<tr class="separator:a8049e3e75826e4873af2010058ad363a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00979f7e3cbc390548287b350dfc07c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structOBCalibrationParam.html">OBCalibrationParam</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#a00979f7e3cbc390548287b350dfc07c7">getCalibrationParam</a> (std::shared_ptr&lt; <a class="el" href="classob_1_1Config.html">Config</a> &gt; config)</td></tr>
<tr class="memdesc:a00979f7e3cbc390548287b350dfc07c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the calibration parameters.  <a href="#a00979f7e3cbc390548287b350dfc07c7">More...</a><br /></td></tr>
<tr class="separator:a00979f7e3cbc390548287b350dfc07c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d068c940a9d4c597c59f7f6f6e151b8"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classob_1_1StreamProfileList.html">StreamProfileList</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#a9d068c940a9d4c597c59f7f6f6e151b8">getD2CDepthProfileList</a> (std::shared_ptr&lt; <a class="el" href="classob_1_1StreamProfile.html">StreamProfile</a> &gt; colorProfile, <a class="el" href="ObTypes_8h.html#ade914070120de80d4338ee74e73dc9d5">OBAlignMode</a> alignMode)</td></tr>
<tr class="memdesc:a9d068c940a9d4c597c59f7f6f6e151b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a list of D2C-enabled depth sensor resolutions corresponding to the input color sensor resolution.  <a href="#a9d068c940a9d4c597c59f7f6f6e151b8">More...</a><br /></td></tr>
<tr class="separator:a9d068c940a9d4c597c59f7f6f6e151b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f7a9208d6a1035302993c9683cba4f2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structOBRect.html">OBRect</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#a5f7a9208d6a1035302993c9683cba4f2">getD2CValidArea</a> (uint32_t minimumDistance, uint32_t maximumDistance=0)</td></tr>
<tr class="memdesc:a5f7a9208d6a1035302993c9683cba4f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the valid area between the minimum distance and maximum distance after D2C.  <a href="#a5f7a9208d6a1035302993c9683cba4f2">More...</a><br /></td></tr>
<tr class="separator:a5f7a9208d6a1035302993c9683cba4f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa21ee5ac861bec48247de5958c3cd704"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#aa21ee5ac861bec48247de5958c3cd704">switchConfig</a> (std::shared_ptr&lt; <a class="el" href="classob_1_1Config.html">Config</a> &gt; config)</td></tr>
<tr class="memdesc:aa21ee5ac861bec48247de5958c3cd704"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dynamically switch the corresponding config configuration.  <a href="#aa21ee5ac861bec48247de5958c3cd704">More...</a><br /></td></tr>
<tr class="separator:aa21ee5ac861bec48247de5958c3cd704"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0d1d11a72e5f803fc747017f074b18d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#aa0d1d11a72e5f803fc747017f074b18d">startRecord</a> (const char *filename)</td></tr>
<tr class="memdesc:aa0d1d11a72e5f803fc747017f074b18d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start recording.  <a href="#aa0d1d11a72e5f803fc747017f074b18d">More...</a><br /></td></tr>
<tr class="separator:aa0d1d11a72e5f803fc747017f074b18d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a550084f2d2c0ae538c3a3e6b4e55abe7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classob_1_1Pipeline.html#a550084f2d2c0ae538c3a3e6b4e55abe7">stopRecord</a> ()</td></tr>
<tr class="memdesc:a550084f2d2c0ae538c3a3e6b4e55abe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop recording.  <a href="#a550084f2d2c0ae538c3a3e6b4e55abe7">More...</a><br /></td></tr>
<tr class="separator:a550084f2d2c0ae538c3a3e6b4e55abe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p>Definition at line <a class="el" href="Pipeline_8hpp_source.html#l00028">28</a> of file <a class="el" href="Pipeline_8hpp_source.html">Pipeline.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a7640a92561c0a10f34fcf874f7dbfbad"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ob::Pipeline::Pipeline </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><a class="el" href="classob_1_1Pipeline.html">Pipeline</a> is a high-level interface for applications, algorithms related RGBD data streams. <a class="el" href="classob_1_1Pipeline.html">Pipeline</a> can provide alignment inside and synchronized <a class="el" href="classob_1_1FrameSet.html" title="Define the FrameSet class, which inherits from the Frame class. ">FrameSet</a>. <a class="el" href="classob_1_1Pipeline.html#a7640a92561c0a10f34fcf874f7dbfbad" title="Pipeline is a high-level interface for applications, algorithms related RGBD data streams...">Pipeline()</a> no parameter version, which opens the first device in the list of devices connected to the OS by default. If the application has obtained the device through the <a class="el" href="classob_1_1DeviceList.html" title="Class representing a list of devices. ">DeviceList</a>, opening the <a class="el" href="classob_1_1Pipeline.html#a7640a92561c0a10f34fcf874f7dbfbad" title="Pipeline is a high-level interface for applications, algorithms related RGBD data streams...">Pipeline()</a> at this time will throw an exception that the device has been created. </p>

</div>
</div>
<a class="anchor" id="aab0777ee6f7f5be19871877c7942cac3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ob::Pipeline::Pipeline </td>
          <td>(</td>
          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classob_1_1Device.html">Device</a> &gt;&#160;</td>
          <td class="paramname"><em>device</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><a class="el" href="classob_1_1Pipeline.html#aab0777ee6f7f5be19871877c7942cac3" title="Pipeline(std::shared_ptr&lt; Device &gt; device ) Function for multi-device operations. Multiple devices ne...">Pipeline(std::shared_ptr&lt; Device &gt; device )</a> Function for multi-device operations. Multiple devices need to be obtained through <a class="el" href="classob_1_1DeviceList.html" title="Class representing a list of devices. ">DeviceList</a>, and the device and pipeline are bound through this interface. </p>

</div>
</div>
<a class="anchor" id="a8c539f66996938d4c35977a124df027e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ob::Pipeline::Pipeline </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Construct a pipeline for playback of recorded stream files. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>The file path of the recorded stream file to be played back </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3f91b419f8f1d345cd4400365bc59d91"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ob::Pipeline::~Pipeline </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destroy the pipeline object. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a0a9d7d03161138a172aed81b640ea702"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob::Pipeline::start </td>
          <td>(</td>
          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classob_1_1Config.html">Config</a> &gt;&#160;</td>
          <td class="paramname"><em>config</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start the pipeline with configuration parameters. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">config</td><td>The parameter configuration of the pipeline </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aab646847294229ddd38a28472485c701"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob::Pipeline::start </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start the pipeline with default configuration parameters. </p>

</div>
</div>
<a class="anchor" id="a7addded117fbb45e5316a58481b6b534"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob::Pipeline::start </td>
          <td>(</td>
          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classob_1_1Config.html">Config</a> &gt;&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceob.html#a079312e9113ca7d35fd7ccb68fb7c7fa">FrameSetCallback</a>&#160;</td>
          <td class="paramname"><em>callback</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start the pipeline and set the frameset data callback. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">config</td><td>The configuration of the pipeline </td></tr>
    <tr><td class="paramname">callback</td><td>The callback to be triggered when all frame data in the frameset arrives </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6962165254f3a2115ad24f826537c894"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob::Pipeline::stop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Stop the pipeline. </p>

</div>
</div>
<a class="anchor" id="af6b07a063c71ade099d8728d26682461"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="classob_1_1StreamProfileList.html">StreamProfileList</a>&gt; ob::Pipeline::getEnabledStreamProfileList </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get Enabled Stream Profile List,It must be called after the pipeline is started, otherwise it will return an empty list </p>

</div>
</div>
<a class="anchor" id="af58c972e61e3f5440b923ff7f37e4561"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="classob_1_1Config.html">Config</a>&gt; ob::Pipeline::getConfig </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the pipeline configuration parameters. </p>
<p>Returns the default configuration if the user has not configured it</p>
<dl class="section return"><dt>Returns</dt><dd>std::shared_ptr&lt;Config&gt; The configured parameters </dd></dl>

</div>
</div>
<a class="anchor" id="aa6d6d07d80ba7e6d71672046bf77789b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="classob_1_1FrameSet.html">FrameSet</a>&gt; ob::Pipeline::waitForFrames </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>timeout_ms</em> = <code>1000</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Wait for frameset data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">timeout_ms</td><td>The waiting timeout in milliseconds </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::shared_ptr&lt;FrameSet&gt; The waiting frameset data </dd></dl>

</div>
</div>
<a class="anchor" id="ab0e9660e8022b37ca69ec4692405f454"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="classob_1_1Device.html">Device</a>&gt; ob::Pipeline::getDevice </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the device object. </p>
<dl class="section return"><dt>Returns</dt><dd>std::shared_ptr&lt;Device&gt; The device object </dd></dl>

</div>
</div>
<a class="anchor" id="aad2d0a8a95b5f505ede3a013139dab24"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="classob_1_1Playback.html">Playback</a>&gt; ob::Pipeline::getPlayback </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the playback object. </p>
<dl class="section return"><dt>Returns</dt><dd>std::shared_ptr&lt;Playback&gt; The playback object </dd></dl>

</div>
</div>
<a class="anchor" id="a40d373e8c143599debc633a1da87ecd2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="classob_1_1StreamProfileList.html">StreamProfileList</a>&gt; ob::Pipeline::getStreamProfileList </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#a0bf6f74f3eaabbf4a71720b9363b2aa8">OBSensorType</a>&#160;</td>
          <td class="paramname"><em>sensorType</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the stream profile of the specified sensor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sensorType</td><td>The type of sensor </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::shared_ptr&lt;StreamProfileList&gt; The stream profile list </dd></dl>

</div>
</div>
<a class="anchor" id="a5f675f5a53924b06869c1b9f892cdeea"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob::Pipeline::enableFrameSync </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Turn on frame synchronization. </p>

</div>
</div>
<a class="anchor" id="ad46ea763b174c240b15279208b9e3d4c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob::Pipeline::disableFrameSync </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Turn off frame synchronization. </p>

</div>
</div>
<a class="anchor" id="ad4f59acb5ed8ed7db43535513fb9bcf2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structOBCameraParam.html">OBCameraParam</a> ob::Pipeline::getCameraParam </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the camera parameters. </p>
<dl class="section note"><dt>Note</dt><dd>If D2C is enabled, it will return the camera parameters after D2C. If not, it will return the default parameters.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structOBCameraParam.html" title="Structure for camera parameters. ">OBCameraParam</a> The camera parameters </dd></dl>

</div>
</div>
<a class="anchor" id="a8049e3e75826e4873af2010058ad363a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structOBCameraParam.html">OBCameraParam</a> ob::Pipeline::getCameraParamWithProfile </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>colorWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>colorHeight</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>depthWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>depthHeight</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get camera parameters by entering color and depth resolution. </p>
<dl class="section attention"><dt>Attention</dt><dd>If D2C is enabled, it will return the camera parameters after D2C, if not, it will return to the default parameters</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">colorWidth</td><td>Width of color resolution </td></tr>
    <tr><td class="paramname">colorHeight</td><td>High of color resolution </td></tr>
    <tr><td class="paramname">depthWidth</td><td>Width of depth resolution </td></tr>
    <tr><td class="paramname">depthHeight</td><td>High of depth resolution</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structOBCameraParam.html" title="Structure for camera parameters. ">OBCameraParam</a> returns camera parameters </dd></dl>

</div>
</div>
<a class="anchor" id="a00979f7e3cbc390548287b350dfc07c7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structOBCalibrationParam.html">OBCalibrationParam</a> ob::Pipeline::getCalibrationParam </td>
          <td>(</td>
          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classob_1_1Config.html">Config</a> &gt;&#160;</td>
          <td class="paramname"><em>config</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the calibration parameters. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">config</td><td>The configured parameters</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structOBCalibrationParam.html" title="calibration parameters ">OBCalibrationParam</a> The calibration parameters </dd></dl>

</div>
</div>
<a class="anchor" id="a9d068c940a9d4c597c59f7f6f6e151b8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="classob_1_1StreamProfileList.html">StreamProfileList</a>&gt; ob::Pipeline::getD2CDepthProfileList </td>
          <td>(</td>
          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classob_1_1StreamProfile.html">StreamProfile</a> &gt;&#160;</td>
          <td class="paramname"><em>colorProfile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ObTypes_8h.html#ade914070120de80d4338ee74e73dc9d5">OBAlignMode</a>&#160;</td>
          <td class="paramname"><em>alignMode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return a list of D2C-enabled depth sensor resolutions corresponding to the input color sensor resolution. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">colorProfile</td><td>The input color sensor resolution </td></tr>
    <tr><td class="paramname">alignMode</td><td>The input align mode </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::shared_ptr&lt;StreamProfileList&gt; A list of depth sensor resolutions </dd></dl>

</div>
</div>
<a class="anchor" id="a5f7a9208d6a1035302993c9683cba4f2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structOBRect.html">OBRect</a> ob::Pipeline::getD2CValidArea </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>minimumDistance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>maximumDistance</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the valid area between the minimum distance and maximum distance after D2C. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">minimumDistance</td><td>The minimum working distance </td></tr>
    <tr><td class="paramname">maximumDistance</td><td>The maximum working distance (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structOBRect.html" title="Rectangle. ">OBRect</a> The area information valid after D2C at the working distance </dd></dl>

</div>
</div>
<a class="anchor" id="aa21ee5ac861bec48247de5958c3cd704"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob::Pipeline::switchConfig </td>
          <td>(</td>
          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classob_1_1Config.html">Config</a> &gt;&#160;</td>
          <td class="paramname"><em>config</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Dynamically switch the corresponding config configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">config</td><td>The updated config configuration </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa0d1d11a72e5f803fc747017f074b18d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob::Pipeline::startRecord </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start recording. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>The name of the record file </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a550084f2d2c0ae538c3a3e6b4e55abe7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ob::Pipeline::stopRecord </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Stop recording. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>/root/libobsensor/include/libobsensor/hpp/<a class="el" href="Pipeline_8hpp_source.html">Pipeline.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Apr 10 2025 12:28:22 for OrbbecSDK by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
